/************************************************************************/
/*																		*/
/*		School Hangover Project											*/
/*																		*/
/*		IMAC 2010														*/
/*		Author : 	Helena Duchaussoy									*/
/*					Isabelle Gouwy										*/
/*					Nathalie Kuoch										*/
/*					Franck Letellier									*/
/*					Louise Pequignot									*/
/*																		*/
/*		E-mail: flo-in-underware@googlegroups.com						*/
/*																		*/
/************************************************************************/

#ifndef Room_h
#define Room_h

#include <iostream>
#include <vector>
#include <stdio.h>
#include <stdlib.h>

#include "Object.h"
#include "InteractiveObject.h"
#include "FlowerPot.h"
#include "Wall.h"
#include "Table.h"
#include "Enemy.h"
#include "Friend.h"
#include "Cloth.h"
#include "Clue.h"

class Stage;

class Room {

public:
	Room(const std::string& sname, const std::string& fname);
	Room(lua_State* L);
	~Room();

	void init();
	void update();



	int addFlowerPot(lua_State* L);
	int addTable(lua_State* L);	
	int addEnemy(lua_State* L);	
	int addFriend(lua_State* L);	
	int addCloth(lua_State* L);	
	int addClue(lua_State* L);	
	Wall* getWall() { return m_pwall;}
	std::vector<Object*> getObjects() { return m_vobject;}
	bool computeInteraction(Player* player);


private:
	Wall* m_pwall;

	std::vector<Object*> m_vobject;
	std::vector<InteractiveObject*> m_viobject;

	std::string m_sfilename;
	lua_State* m_pscript;
	friend class Lunar<Room>;
	static const char className[];
	static Lunar<Room>::RegType methods[];
};

#endif // Room_h
